package com.ruoyi.docdraw;

import cn.hutool.core.io.resource.InputStreamResource;
import cn.hutool.crypto.SecureUtil;
import cn.hutool.crypto.digest.MD5;
import cn.hutool.http.HttpUtil;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import org.apache.commons.io.IOUtils;
import org.springframework.web.multipart.MultipartFile;
import java.io.*;
import java.util.Arrays;
import java.util.HashMap;

public class test {
//    public static void main(String[] args) {
//        try {
//            File file = new File("C:\\Users\\86182\\Downloads\\pdf_0000000002_drw.pdf");
//            // 计算 File 对象的 MD5 值
//
//
//            String fileMD5 = SecureUtil.md5(new FileInputStream(file));
//            // 创建 InputStreamResource 对象
//            InputStreamResource isr = new InputStreamResource(new FileInputStream(file), file.getName());
//            // 计算 InputStreamResource 对象的 MD5 值
//            String isrMD5 = SecureUtil.md5(isr.getStream());
//
//            System.out.println("File MD5: " + fileMD5);
//            System.out.println("InputStreamResource MD5: " + isrMD5);
//            System.out.println("MD5 values are equal: " + fileMD5.equals(isrMD5));
//        } catch (IOException e) {
//            e.printStackTrace();
//        }
//    }



    public static void main(String[] args) {
        //文件地址
//        File file = new File("C:\\Users\\86182\\Desktop\\config.properties");
//        System.out.println("MD5:"+SecureUtil.md5(file));
//        //声明参数集合
//        HashMap<String, Object> paramMap = new HashMap<>();
//        //文件
//        paramMap.put("file", file);
//        //输出
//        paramMap.put("output","json");
//        //自定义路径
//        paramMap.put("path","101");
//        //场景
//        paramMap.put("scene","");
//        //上传
//        String result= HttpUtil.post("http://192.168.0.60:9090/group1/upload", paramMap);
//        //输出json结果
//        System.out.println(result);


//        String md5 = "http://192.168.0.60:9090/group1/get_file_info?md5=9311908beacd982889fe06c1470bc706";
//        String s = HttpUtil.get(md5);
//        System.out.println(s);

//        String s = "{\n" +
//                "  \"domain\": \"http://192.168.0.60:9090\",\n" +
//                "  \"md5\": \"9311908beacd982889fe06c1470bc706\",\n" +
//                "  \"mtime\": 1741674317,\n" +
//                "  \"path\": \"/group1/xl1/0_config.properties\",\n" +
//                "  \"retcode\": 0,\n" +
//                "  \"retmsg\": \"\",\n" +
//                "  \"scene\": \"default\",\n" +
//                "  \"scenes\": \"default\",\n" +
//                "  \"size\": 389,\n" +
//                "  \"src\": \"/group1/xl1/0_config.properties\",\n" +
//                "  \"url\": \"http://192.168.0.60:9090/group1/xl1/0_config.properties?name=0_config.properties\\u0026download=1\"\n" +
//                "}\n";
//
//        String[] strings = parseFastDFSResponse(s);
//        System.out.println("md5:"+strings[0]);
//        System.out.println("url:"+strings[1]);





//        String delete = "http://192.168.0.60:9090/group1/delete?md5=f07d7ad4bf88232bbd93da01be69da8d";
//        System.out.println(HttpUtil.get(delete));



    }





    public static String[] parseFastDFSResponse(String responseBody) {
        if (JSONUtil.isJson(responseBody)) {
            JSONObject jsonObject = JSONUtil.parseObj(responseBody);
            // 提取 MD5 值
            String md5 = jsonObject.getStr("md5");
            if (md5 == null || md5.isEmpty()) {
                throw new IllegalArgumentException("响应中缺少 MD5 字段");
            }

            // 提取原始 URL 并处理
            String fullUrl = jsonObject.getStr("url");
            if (fullUrl == null || fullUrl.isEmpty()) {
                throw new IllegalArgumentException("响应中缺少 URL 字段");
            }

            // 截取 URL 到问号前的部分
            String urlWithoutQuery = getUrlWithoutQuery(fullUrl);

            return new String[]{md5, urlWithoutQuery};
        } else {
            throw new IllegalArgumentException("传入的不是有效的 JSON 字符串");
        }
    }

    /**
     * 从完整 URL 中提取主路径（去除查询参数和锚点）
     * @param fullUrl 完整 URL 字符串
     * @return 主路径部分（例如：http://example.com/path/to/file）
     */
    private static String getUrlWithoutQuery(String fullUrl) {
        int queryIndex = fullUrl.indexOf('?');
        return queryIndex != -1 ? fullUrl.substring(0, queryIndex) : fullUrl;
    }
}
